package com.xxjh.brs.ftp.common.utils;

import com.xxjh.brs.ftp.common.predicate.FtpPredicate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.*;

/**
 * @author CHENCHEN
 * @title FTP工具类
 * @company 新兴际华科技（天津）有限公司
 * @create 2024-07-03 19:21
 */
public class FtpFileSearchUtil {

    private static final Logger log = LoggerFactory.getLogger(FtpFileSearchUtil.class);


    /**
     * 筛选并排序路径列表，确保具有最高优先级的文件路径排在前面。
     *
     * @param paths 待筛选和排序的原始文件路径列表。
     * @param ftpPredicate 自定义筛选规则。
     * @return 经过优先级筛选后的路径列表。
     */
    public static List<String> pathFilter(List<String> paths, FtpPredicate ftpPredicate) {
        Map<String, String> prefixToPath = new HashMap<>();
        for (String path : paths) {
            ftpPredicate.searchByRule(path, prefixToPath);
        }
        // 返回筛选后的路径列表
        return new ArrayList<>(prefixToPath.values());
    }


}
